package org.shiro.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.shiro.entity.Role;
import org.springframework.stereotype.Repository;

import java.util.List;

/** @author HKC */
@Repository
@Mapper
public interface RoleMapper {
  /**
   * 删除
   *
   * @param id
   * @return
   */
  int deleteByPrimaryKey(Long id);

  /**
   * 添加
   *
   * @param record
   * @return
   */
  int insertSelective(Role record);

  /**
   * 查询
   *
   * @param id
   * @return
   */
  Role selectByPrimaryKey(Long id);

  /**
   * 更改
   *
   * @param record
   * @return
   */
  int updateByPrimaryKeySelective(Role record);

  /**
   * 查询所有数据
   *
   * @return
   */
  List<Role> selectAll();

  /**
   * 指定行数查询
   *
   * @param offset
   * @param limit
   * @return
   */
  List<Role> queryByLimit(@Param("offset") int offset, @Param("limit") int limit);

  /**
   * 用户Id查找用户对应的角色
   *
   * @param userId
   * @return
   */
  List<Role> selectByUserId(@Param("userId") Long userId);

  /**
   * 角色名称查询
   *
   * @param rolename
   * @return
   */
  Role queryByRoleName(@Param("rolename") String rolename);

  /**
   * 查询角色对应的权限
   * @param id
   * @return
   */
    List<Role> queryMenu(@Param("id") Long id);
}
